Çàêðûòü îêíî
Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"
%AREA 5
5.5. Ïpoöeäópû è ôóíêöèè
5.5.1. Oñíoâíûe ÷epòû ïpoöeäópíoão áëoêa
B ýòoì paçäeëe áoëee ïoäpoáío paccìaòpèâaeòcÿ aïïapaò ïpoöeäóp. Äaëee äëÿ êpaòêocòè pe÷ü áóäeò èäòè òoëüêo o ïpoöeäópax, a ïpè íeoáxoäèìoñòè oãoâapèâaòücÿ oñoáeííoñòè ôóíêöèé.
Ïpoöeäópa - ýòo oáocoáëeííaÿ ÷acòü ïpoãpaììû (ïocëeäoâaòeëüíocòü ïpeäïècaíèé), èìeþùaÿ coácòâeííoe èìÿ. Ocíoâíoe äeécòâèe íaä ïpoöeäópoé - ee âûçoâ - ïoçâoëÿeò âûïoëíèòü ýòè ïpeäïècaíèÿ. Ôóíêöèÿ, êpoìe òoão, â êoíöe paáoòû âûäaeò â êa÷ecòâe peçóëüòaòa oáúeêò ïpoèçâoëüíoão âèäa.
%LISTD
-Ïpoöeäópa ÿâëÿeòcÿ eäèíèöeé còpóêòópèpoâaíèÿ ïpoãpaììû. B oòäeëüíûe ïpoöeäópû óäoáío âûäeëÿòü ëoãè÷ecêè íeçaâècèìûe ÷acòè ïpoãpaììû, âcïoìoãaòeëüíûe aëãopèòìû, ÷acòo ïoâòopÿþùèecÿ ó÷acòêè ïpoãpaìì.
-Ïpoöeäópa ÿâëÿeòcÿ eäèíèöeé xpaíeíèÿ ïpoãpaììíoão òeêcòa. Ýòo ïoääepæèâaeòcÿ cpeäcòâaìè peäaêòèpoâaíèÿ è òpaícëÿöèè ïpoöeäóp â cècòeìe (5.4).
-Ïpoöeäópa ÿâëÿeòcÿ eäèíèöeé ëoêaëèçaöèè èìeí (5.5.4,5.5.5). B oòëè÷èe oò äpóãèx ÿçûêoâ ïpoãpaììèpoâaíèÿ, cOCTABíûe ïpeäïècaíèÿ â PAÏÈPE (ócëoâèÿ, öèêëû) câoécòâoì ëoêaëèçaöèè íe oáëaäaþò.
%ENDL
Ïpoöeäópa â PAÏÈPE èìeeò äâa ïpeäcòaâëeíèÿ:
%LISTD
-Oïècaíèe ïpoöeäópû - òeêcò ïpoãpaììû çaäaþùeé paáoòó ýòoé ïpoöeäópû, çaïècaííûé ïo cèíòaêcè÷ecêèì ïpaâèëaì ÿçûêa (ä38,39). Oïècaíèÿ ïpoöeäóp xpaíÿòcÿ â ÄÇÓ â òeêcòoâûx ôaéëax, è oápaáaòûâaþòcÿ c ïoìoùüþ Peäaêòopa.
-Oáúeêò "ïpoöeäópa" ("ôóíêöèÿ") â ïpoãpaììíoé cpeäe, oápaáaòûâaeìûé íapaâíe c ïpo÷èìè oáúeêòaìè â äpóãèx ïpoãpaììax. Ïpoöeäópa-oáúeêò oápaçóeòcÿ â peçóëüòaòe òpaícëÿöèè ee oïècaíèÿ è â äaëüíeéøeì oò ècxoäíoão òeêcòa íe çaâècèò.
%ENDL
5.5.2. Ïopÿäoê oïèñaíèÿ è peäaêòèpoâaíèÿ ïpoöeäóp
Ïopÿäoê oïècaíèÿ ïpocòeéøèx ïpoöeäóp c ïoìoùüþ Peäaêòopa óæe áûë oïèñaí â 5.4.2. Hèæe ïpèâoäèòcÿ pÿä äoïoëíèòeëüíûx ocoáeííoñòeé è äaþòcÿ íeoáxoäèìûe ïoÿñíeíèÿ.
%LISTD
-B òeëo ïpoöeäópû ìoãóò âxoäèòü ëþáûe óíèâepcaëüíûe ïpeäïècaíèÿ (ä3). Çaïpeùeío ècïoëüçoâaíèe cècòeìíûx äèpeêòèâ, a òaêæe äpóãèx ïpoöeäópíûx áëoêoâ. Ïoýòoìó, âëoæeííûe oïèñaíèÿ ïpoöeäóp â PAÏÈPE íeäoïóñòèìû. Ýòo, oäíaêo, íe oçía÷aeò, ÷òo èç oäíoé ïpoöeäópû íeëüçÿ âûçâaòü äpóãóþ.
-Äëÿ oïèñaíèÿ ôóíêöèé ñëóæèò äèpeêòèâa ÔÓHK, aíaëoãè÷íaÿ ÏPOÖ. Äëÿ âxoäa â peæèì peäaêòèpoâaíèÿ ìoæío èñïoëüçoâaòü è ee.
-Koícòpóêöèÿ
PEÇ: âûpaæeíèe ;
â oïècaíèè ôóíêöèè cëóæèò äëÿ âoçâpaòa peçóëüòaòa ôóíêöèè.
-Ïpè âûxoäe èç Peäaêòopa òpaícëèpóeìûé òeêñò ìoæeò ñoñòoÿòü òoëüêo èç oïèñaíèé ïpoöeäóp è ôóíêöèé (âoçìoæío, paçäeëeííûx êoììeíòapèÿìè). Ëþáaÿ äpóãaÿ èíôopìaöèÿ, a òaêæe oäèío÷íûe ïpeäïèñaíèÿ ïpè òpaícëÿöèè áóäóò paññìaòpèâaòüñÿ êaê oøèáêa.
-Äèpeêòèâa KOHEÖ OÏÈCAHÈß â Peäaêòope (âûxoä ñ òpaíñëÿöèeé) oçía÷aeò êoíeö oïèñaíèÿ ïpoöeäópíoão áëoêa. Ïo íeé ïpoâoäèòñÿ ñèíòaêñè÷eñêèé aíaëèç òeêñòa; eñëè áûëè çaìe÷eíû oøèáêè, âûäaeòñÿ ñooáùeíèe oá oøèáêe, è ïpoèñxoäèò âoçâpaò â peæèì peäaêòèpoâaíèÿ.
Eñëè òeêñò ñèíòaêñè÷eñêè ïpaâèëeí, ïpoèñxoäèò ñoçäaíèe oáúeêòoâ âèäa "ïpoöeäópa" ("ôóíêöèÿ") â ñooòâeòñòâèè c ïpèâeäeííûìè oïèñaíèÿìè. Kaæäûé oáúeêò ïpèñâaèâaeòñÿ èìeíè, óêaçaííoìó â çaãoëoâêe eão oïèñaíèÿ. Haïpèìep, ïpè òpaíñëÿöèè oïèñaíèÿ
ÔÓHK MHOÃO×ËEH;
PEÇ:X**2+10*X-8;
KHÖ;
çía÷eíèeì èìeíè MHOÃO×ËEH ñòaíeò ôóíêöèÿ, c÷èòaþùaÿ çía÷eíèe êoíêpeòíoão ïoëèíoìa oò ÷ècëa X.
-Ïoñëe çaâepøeíèÿ òpaíñëÿöèè âûäaeòñÿ çaïpoñ "èìÿ : ÇAÏOMÈHATÜ (Ä/H)?". Cëeäóeò oòâeòèòü, íóæío ëè çaïoìèíaòü ía äèñê oòpeäaêòèpoâaííûé òeêñò. Eñëè òeêñò íe peäaêòèpoâaëñÿ èëè áûë çaïoìíeí eùe â Peäaêòope, äaííûé çaïpoñ íe âûäaeòñÿ.
-Eñëè oïèñaíèe ïpoöeäópû óæe xpaíèòñÿ â ÄÇÓ, òo oòòpaícëèpoâaòü eão ìoæío òpeìÿ ñïoñoáaìè:
%LISTM
-ñäeëaòü "ôèêòèâíoe" peäaêòèpoâaíèe, ò.e. âoéòè â peæèì peäaêòèpoâaíèÿ ïpoöeäópû ïo äèpeêòèâe ÏPOÖ è, íe âíoñÿ èçìeíeíèé, âûéòè c òpaícëÿöèeé;
-âoñïoëüçoâaòüñÿ ïpeäïèñaíèeì BBOÄ ÈÇ ÄÇÓ (ä31);
-âocïoëüçoâaòücÿ ïpeäïècaíèeì ÇAÏÓCK (ä33); ïpè ýòoì cpaçó ïocëe òpaícëÿöèè ïpoèçoéäeò âûçoâ ïpoöeäópû (oía äoëæía áûòü áeç ïapaìeòpoâ).
%ENDL
Bòopoé ñïoñoá óäoáeí òeì, ÷òo ïpeäïèñaíèe ââoäa èç ÄÇÓ ìoæío èñïoëüçoâaòü â äpóãoé ïpoöeäópe, opãaíèçóÿ òeì ñaìûì aâòoìaòè÷eñêóþ çaãpóçêó âñex íeoáxoäèìûx ïpoöeäóp. Eñëè ïpoöeäóp â ïpoãpaììe íeìíoão) èìeeò ñìûñë ïoìeñòèòü èx âñe â oäèí ôaéë.
%ENDL
5.5.3. Ïpoöeäópû, êaê oáúeêòû ÿçûêa
Kaê è äpóãèe oáúeêòû, ïpoöeäópû ìoãóò ó÷acòâoâaòü â ïpeäïècaíèÿx âûâoäa, ïpècâaèâaíèÿ, oïepaöèÿx ôopìèpoâaíèÿ è cpaâíeíèÿ ía paâeícòâo. Ho ocíoâíûì äeécòâèeì íaä íèìè ÿâëÿeòcÿ âûçoâ.
Bûçoâ ïpoöeäópû â ïpoãpaììe èëè äpóãoé ïpoöeäópe oçía÷aeò âpeìeííoe ïpeêpaùeíèe ècïoëíeíèÿ ïocëeäíeé è ía÷aëo ècïoëíeíèÿ âûçûâaeìoé ïpoöeäópû. Ïocëe ee çaâepøeíèÿ ocòaíoâëeííaÿ ïpoöeäópa ïpoäoëæaeò paáoòó. Áoëee ïoëíoe oïècaíèe âûçoâa ïpèâoäèòcÿ â 5.5.6.
Cèíòaêcèc âûçoâa oäèíaêoâ äëÿ ïpoöeäóp è ôóíêöèé:
âûpaæeíèe ( cïècoê ïapaìeòpoâ )
Bûpaæeíèe oáoçía÷aeò ïpoöeäópó-oáúeêò. Kaê ïpaâèëo, çäecü óêaçûâaeòcÿ ee èìÿ, xoòÿ äoïócòèìû è äpóãèe ôopìû äocòóïa. Cïècoê ïapaìeòpoâ ìoæeò oòcóòcòâoâaòü, ío cêoáêè, oçía÷aþùèe âûçoâ, oáÿçaòeëüíû.
Bûçoâ ïpoöeäópû ÿâëÿeòcÿ ïpeäïècaíèeì, a âûçoâ ôóíêöèè - oïepaöèeé, ïocêoëüêó âoçâpaùaeò peçóëüòaò. Ïoýòoìó âûçoâ ôóíêöèè ìoæeò âcòpe÷aòücÿ â âûpaæeíèè. Ïpèìepû:
PAKETA(); (* âûçoâ ïpoöeäópû *)
<A,B,C>[I](); (* âûçoâ oäíoé èç ïpoöeäóp A,B èëè C
â çaâèñèìoñòè oò I *)
Ô()()->X;
ñía÷aëa âûçoâeòñÿ ôóíêöèÿ Ô, çaòeì - ee peçóëüòaò (oí òoæe äoëæeí áûòü ôóíêöèeé), è óæe eão peçóëüòaò ïpèñâoèòñÿ èìeíè X.
5.5.4. Áëo÷íaÿ ñòpóêòópa PAÏÈPÛ. Ëoêaëèçaöèÿ èìeí
Cêpûòèe ocoáeííocòeé è íeçaâècèìocòü paáoòû oäíoé ïpoãpaììû oò äpóãoé äocòèãaþòcÿ oáû÷ío c ïoìoùüþ oãpaíè÷eíèÿ (ëoêaëèçaöèè) oáëacòè âèäèìocòè èìeí (è èx çía÷eíèé) â ïpoãpaììíoé cpeäe. Ïpaâèëa ëoêaëèçaöèè èìeí â PAÏÈPE oòëè÷íû oò òpaäèöèoííûx.
Ãëoáaëüíoé oáëacòüþ âèäèìocòè ÿâëÿeòcÿ âcÿ ïpoãpaììíaÿ cpeäa. Ãëoáaëüíûe èìeía - ýòo èìeía, èçâeñòíûe â oñíoâíoì äèaëoãoâoì peæèìe. Oíè âûäaþòcÿ ïo ïpeäïèñaíèþ KATAËOÃ BCEX ÈMEH, èñïoëíeííoìó â ýòoì peæèìe, è íè â êaêoì oïècaíèè íe íóæäaþòñÿ.
Ëoêaëüíoé oáëacòüþ âèäèìocòè ìoæeò áûòü òoëüêo ïpoöeäópíûé áëoê. Èìeía, oïèñaííûe â çaãoëoâêe ïpoöeäópû, c ïoìoùüþ êoícòpóêöèè
ÈMEHA: cïècoê èìeí ÷epeç çaïÿòóþ ;
èçâecòíû cècòeìe òoëüêo ía âpeìÿ âûçoâa äaííoé ïpoöeäópû â íeé è âo âcex âûçâaííûx èç íee ïpoöeäópax. Ïpè âûçoâe ïpoöeäópû oíè ïoëó÷aþò ïóñòûe çía÷eíèÿ, ïpè âûxoäe èç íee âûpaáoòaííûe çía÷eíèÿ ëoêaëüíûx èìeí ïpoïaäaþò.
Èìeía, íe oïècaííûe, ío ècïoëüçoâaííûe â ïpoöeäópe A, ïpèpaâíèâaþòcÿ ê ãëoáaëüíûì, xoòÿ oíè ìoãóò áûòü ëoêaëüíû â äpóãoé ïpoöeäópe Á, âûçâaâøeé äaííóþ. Eñëè oäío èç èìeí ïpoöeäópû Á ñoâïaäaeò ïo íaïèñaíèþ ñ ëoêaëüíûì èìeíeì ïpoöeäópû A òo eão çía÷eíèe â ìoìeíò âûçoâa ñòaíoâèòñÿ íeäoñòóïíûì ía âñe âpeìÿ paáoòû A. Ïpè âûxoäe èç ïpoöeäópû äoñòóï ê còapoìó çía÷eíèþ âoññòaíaâëèâaeòñÿ. Taêoâ ïpèíöèï ëoêaëèçaöèè èìeí ïo äèíaìè÷ecêoé öeïo÷êe âûçoâoâ.
Çía÷eíèÿ ãëoáaëüíûx èìeí â ïpoöeäópe ìoãóò èçìeíÿòüñÿ.
Ëoêaëüíûe èìeía â ïpoöeäópe íe äoëæíû coâïaäaòü c ee èìeíeì.
Ïócòü oïècaía ïpoöeäópa
ÏPOÖ CÓMMA;
ÈMEHA:CÓM,C×; (* C× è CÓM - ëoêaëüíûe èìeía *)
0->CÓM; (* HA× è KOH - ãëoáaëüíûe *)
ÄËß C× OT HA× ÄO KOH ::
CÓM+C×**2->CÓM;
BCE;
BÛBOÄ:"CÓMMA KBAÄPATOB ×ÈCEË OT",HA×,
" ÄO",KOH," PABHA",CÓM;
KHÖ;
Ïpèìep ee ècïoëüçoâaíèÿ:
# 1->HA×; 5->KOH; 28->CÓM; CÓMMA();
CÓMMA KBAÄPATOB ×ÈCEË OT 1 ÄO 5 PABHA 55
# BÛBOÄ:C×,CÓM;
.ÏÓCTO. 28
Kaê âèäío èç ïpèìepa, ëoêaëüíoe èìÿ CÓM ìañêèpóeò ía âpeìÿ paáoòû ïpoöeäópû òaêoe æe ãëoáaëüíoe èìÿ.